/*============================================================================*/
/*                              x embedded systems                            */
/*============================================================================*/
/*                        OBJECT SPECIFICATION                                */
/*============================================================================*
* %name:            cpu_drv.c%
* %version:         2.0%
* %created_by:      David Robles%
* %date_created:    March 02 2012%
*=============================================================================*/
/* DESCRIPTION : CPU drivers                                                  */
/*============================================================================*/
/* FUNCTION COMMENT : Provices APIs to configure and use cpu of PIC micro     */
/*                                                                            */
/*                                                                            */
/*============================================================================*/
/*                               OBJECT HISTORY                               */
/*============================================================================*/
/*  REVISION |   DATE      |                               |      AUTHOR      */
/*----------------------------------------------------------------------------*/
/*  1.0      | 02/03/2012  |                               | David Robles     */
/* File created                                                               */
/*----------------------------------------------------------------------------*/
/*  2.0      | 14/03/2012  |                               | David Robles     */
/* cpu_drv_init function was simplified using new configuration file          */
/* options (see cpu_config.h and cpu_drv.h log files)                         */
/*============================================================================*/

/* Includes */
/* -------- */
#include "stdtypedef.h"
#include "p18f4550.h"
#include "cpu_config.h"
#include "cpu_drv.h"



/* Functions macros, constants, types and datas         */
/* ---------------------------------------------------- */
/* Functions macros */

/*==================================================*/ 
/* Definition of constants                          */
/*==================================================*/ 
/* BYTE constants */

/* WORD constants */

/* LONG and STRUCTURE constants */


/*======================================================*/ 
/* Definition of RAM variables                          */
/*======================================================*/ 
/* BYTE RAM variables */

/* WORD RAM variables */

/* LONG and STRUCTURE RAM variables */

/*======================================================*/ 
/* close variable declaration sections                  */
/*======================================================*/ 

/* Private defines */

/* Private functions prototypes */
/* ---------------------------- */


/* Exported functions prototypes */
/* ----------------------------- */
void cpu_drv_init (void);

/* Inline functions */
/* ---------------- */
/**************************************************************
 *  Name                 : inline_func	2
 *  Description          :
 *  Parameters           :  [Input, Output, Input / output]
 *  Return               :
 *  Critical/explanation :    [yes / No]
 **************************************************************/
 
 /* Private functions */
/* ----------------- */
/**************************************************************
 *  Name                 : private_func
 *  Description          :
 *  Parameters           :  [Input, Output, Input / output]
 *  Return               :
 *  Critical/explanation :    [yes / No]
 **************************************************************/

 /* Exported functions */
/* ------------------ */
/**************************************************************
 *  Name                 : cpu_drv_init
 *  Description          : Ititialize the oscilator and basic cpu configurations.
 *  Parameters           :  none
 *  Return               :  none
 *  Critical/explanation :  No
 **************************************************************/
void cpu_drv_init (void)
{
	/* Setting OSCCON register */
	/* See cpu_config to ajust cpu configuration */
	SET_OSCCON_REG(SYSTEM_CLOCK,INTOSC_FRECUENCY,IDLE_OPTION);
	/* Warning [2060] shift expression has no effect - Robustness */
	
#ifndef MPLAB_SIM
    /* Waiting for internal oscillator gets stable */
	while(!GET_IOFS()){};
#endif
}
